/**
 * @author 14544
 * @date 2020/3/26 11:18
 */
let TEST_URL = '/gov/gov.do?methodname=queryDocStatuses&serviceid=gov_status';
// 监听准备状态 readState
{
    let xhr = new XMLHttpRequest();
    xhr.responseType = 'json';

    // UNSENT = 0; // 初始化状态
    // OPENED = 1; // 调用 open 方法
    // HEADERS_RECEIVED = 2; // 收到响应头
    // LOADING = 3; // 响应正在被加载（收到数据包）
    // DONE = 4; // 请求完成

    // 你可能在古老的代码中发现 readystatechange 这样的事件监听器，它的存在是基于一些历史原因，因为在很长一段时间内都没有 load 以及其他事件。
    // onreadystatechange 是无法获取请求下载进度的
    // 如今，它们已被 load/error/progress 事件替代。
    xhr.onreadystatechange = function (event) {
        console.log(`status:${xhr.status}; readyState ${xhr.readyState}`);
        if (xhr.status === 200 && xhr.readyState === 4) {
            console.log('loaded')
            console.log(xhr.response || xhr.responseText)
        } else if (xhr.status === 200 && xhr.readyState === 3) {
            console.log(event)
            console.log('onprogress...')
        }
    };

    // 用了onreadystatechange之后 也可以一起使用 onload、onprogress方法，但建议不一起使用，二选一即可，最好是使用onload方法
    // xhr.onload = function(){
    //     console.log('onload loaded!!!')
    // }
    //
    // xhr.onprogress = function(){
    //     console.log('progress!!!')
    // }

    xhr.open('GET', TEST_URL, true);
    xhr.send(null);
}
